
// 中间件的核心原理就是重写 store.dispatch 
/**
 * 不管是什么中间件，不管是什么逻辑，他的基本架构都是一样的
 * getState 获取仓库中的状态
 * dispatch 重新派发动作
 * next 调用下一个中间件或者原始的store.dispatch
 */

 function promise({getState,dispatch}){
  return function(next){//为了实现中间件的级联，调用下一个中间件
    return function(action){//这才就是我们改造后的dispatch方法了
      if(action.then && typeof action.then === 'function'){
        return action.then(dispatch)
      }
      next(action)
    }
  }
}
export default promise;